home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 167 / pascal / digits.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-08-19  |  6.7 KB  |  281 lines

  1. PROCEDURE Top_Horz ;
  2. VAR
  3.    TX1, TX2   : Integer ;
  4.    TY1, TY2   : Integer ;
  5. BEGIN
  6.    Line_Color( 3 );
  7.    Line( DX+4,DY+1,DX+27,DY+1 );
  8.    Line( DX+3,DY+2,DX+27,DY+2 );
  9.    Line( DX+2,DY+3,DX+27,DY+3 );
  10.    TX1 := DX+1 ; TX2 := DX+27 ;
  11.    Line( TX1,DY+4,TX2,DY+4 );
  12.    Line( TX1,DY+5,TX2,DY+5 );
  13.    Line( TX1,DY+6,TX2,DY+6 );
  14.    Line( TX1,DY+7,TX2,DY+7 );
  15.    Line_Color( 2 );
  16.    Line( DX,DY+4,DX+4,DY );
  17.    Line( DX+4,DY,DX+28,DY );
  18.    Line_To( DX+28,DY+8 );
  19.    Line_To( DX,DY+8 );
  20.    Line_To( DX,DY+5 );
  21.    Line_Color( 1 );
  22.    Line( DX,DY+3,DX+3,DY );
  23.    Line( DX+29,DY+1,DX+29,DY+7 );
  24. END ; { Top_Horz }
  25.  
  26. PROCEDURE Mid_Horz ;
  27. BEGIN
  28.    Line_Color( 3 );
  29.    Line( DX+9,DY+32,DX+29,DY+32 );
  30.    Line( DX+8,DY+33,DX+30,DY+33 );
  31.    Line( DX+7,DY+34,DX+31,DY+34 );
  32.    Line( DX+6,DY+35,DX+32,DY+35 );
  33.    Line( DX+7,DY+36,DX+31,DY+36 );
  34.    Line( DX+8,DY+37,DX+30,DY+37 );
  35.    Line( DX+9,DY+38,DX+29,DY+38 );
  36.    Line_Color( 2 );
  37.    Line( DX+5,DY+35,DX+9,DY+31 );
  38.    Line_To( DX+29,DY+31 );
  39.    Line_To( DX+33,DY+35 );
  40.    Line_To( DX+29,DY+39 );
  41.    Line_To( DX+9,DY+39 );
  42.    Line_To( DX+5,DY+35 );
  43.    Line_Color( 1 );
  44.    Line( DX+8,DY+39,DX+4,DY+35 );
  45.    Line_To( DX+8,DY+31 );
  46.    Line( DX+30,DY+31,DX+34,DY+35 );
  47.    Line_To( DX+30,DY+39 );
  48. END ; { Mid_Horz }
  49.  
  50. PROCEDURE Bot_Horz ;
  51. VAR
  52.    TX1, TX2   : Integer ;
  53. BEGIN
  54.    Line_Color( 3 );
  55.    TX1 := DX+1 ; TX2 := DX+27 ;
  56.    Line( TX1,DY+63,TX2,DY+63 );
  57.    Line( TX1,DY+64,TX2,DY+64 );
  58.    Line( TX1,DY+65,TX2,DY+65 );
  59.    Line( TX1,DY+66,TX2,DY+66 );
  60.    Line( DX+2,DY+67,TX2,DY+67 );
  61.    Line( DX+3,DY+68,TX2,DY+68 );
  62.    Line( DX+4,DY+69,TX2,DY+69 );
  63.    Line_Color( 2 );
  64.    Line( DX,DY+62,DX+28,DY+62 );
  65.    Line_To( DX+28,DY+70 );
  66.    Line_To( DX+4,DY+70 );
  67.    Line_To( DX,DY+66 );
  68.    Line_To( DX,DY+62 );
  69.    Line_Color( 1 );
  70.    Line( DX,DY+67,DX+3,DY+70 );
  71.    Line( DX+29,DY+63,DX+29,DY+69 );
  72. END ; { Bot_Horz }
  73.  
  74. PROCEDURE Left_Top ;
  75. VAR
  76.    TY1, TY2   : Integer ;
  77. BEGIN
  78.    Line_Color( 3 );
  79.    TY1 := DY+11 ; TY2 := DY+33 ;
  80.    Line( DX+1,TY1,DX+1,TY2 );
  81.    Line( DX+2,TY1,DX+2,TY2 );
  82.    Line( DX+3,TY1,DX+3,TY2 );
  83.    Line( DX+4,TY1,DX+4,DY+32 );
  84.    Line( DX+5,TY1,DX+5,DY+31 );
  85.    Line( DX+6,TY1,DX+6,DY+30 );
  86.    Line( DX+7,TY1,DX+7,DY+29 );
  87.    Line_Color( 2 );
  88.    Line( DX,DY+33,DX,DY+10 );
  89.    Line_To( DX+8,DY+10 );
  90.    Line_To( DX+8,DY+29 );
  91.    Line_To( DX+3,DY+34 );
  92.    Line_To( DX+1,DY+34 );
  93.    Line_Color( 1 );
  94.    Line( DX+8,DY+30,DX+3,DY+35 );
  95.    Line_To( DX+1,DY+35 );
  96.    Line_To( DX,DY+34 );
  97.    Line( DX+1,DY+9,DX+7,DY+9 );
  98. END ; { Left_Top }
  99.  
  100. PROCEDURE Left_Bot ;
  101. VAR
  102.    TY1, TY2   : Integer ;
  103. BEGIN
  104.    Line_Color( 3 );
  105.    TY1 := DY+37 ; TY2 := DY+59 ;
  106.    Line( DX+1,TY1,DX+1,TY2 );
  107.    Line( DX+2,TY1,DX+2,TY2 );
  108.    Line( DX+3,TY1,DX+3,TY2 );
  109.    Line( DX+4,DY+38,DX+4,TY2 );
  110.    Line( DX+5,DY+39,DX+5,TY2 );
  111.    Line( DX+6,DY+40,DX+6,TY2 );
  112.    Line( DX+7,DY+41,DX+7,TY2 );
  113.    Line_Color( 2 );
  114.    Line( DX,DY+37,DX,DY+60 );
  115.    Line_To( DX+8,DY+60 );
  116.    Line_To( DX+8,DY+41 );
  117.    Line_To( DX+3,DY+36 );
  118.    Line_To( DX+1,DY+36 );
  119.    Line_Color( 1 );
  120.    Line( DX+8,DY+40,DX+3,DY+35 );
  121.    Line_To( DX+1,DY+35 );
  122.    Line_To( DX,DY+36 );
  123.    Line( DX+1,DY+61,DX+7,DY+61 );
  124. END ; { Left_Bot }
  125.  
  126. PROCEDURE Right_Top ;
  127. VAR
  128.    TY1, TY2   : Integer ;
  129. BEGIN
  130.    Line_Color( 3 );
  131.    TY1 := DY+1 ; TY2 := DY+33 ;
  132.    Line( DX+31,TY1,DX+31,DY+29 );
  133.    Line( DX+32,TY1,DX+32,DY+30 );
  134.    Line( DX+33,TY1,DX+33,DY+31 );
  135.    Line( DX+34,TY1,DX+34,DY+32 );
  136.    Line( DX+35,DY+2,DX+35,TY2 );
  137.    Line( DX+36,DY+3,DX+36,TY2 );
  138.    Line( DX+37,DY+4,DX+37,TY2 );
  139.    Line_Color( 2 );
  140.    Line( DX+38,DY+33,DX+38,DY+4 );
  141.    Line_To( DX+34,DY );
  142.    Line_To( DX+30,DY );
  143.    Line_To( DX+30,DY+29 );
  144.    Line_To( DX+35,DY+34 );
  145.    Line_To( DX+37,DY+34 );
  146.    Line_Color( 1 );
  147.    Line( DX+30,DY+30,DX+35,DY+35 );
  148.    Line_To( DX+37,DY+35 );
  149.    Line_To( DX+38,DY+34 );
  150.    Line( DX+35,DY,DX+38,DY+3 );
  151. END ; { Right_Top }
  152.  
  153.  
  154. PROCEDURE Right_Bot ;
  155. VAR
  156.    TY1, TY2   : Integer ;
  157. BEGIN
  158.    Line_Color( 3 );
  159.    TY1 := DY+37 ; TY2 := DY+69 ;
  160.    Line( DX+31,DY+41,DX+31,TY2 );
  161.    Line( DX+32,DY+40,DX+32,TY2 );
  162.    Line( DX+33,DY+39,DX+33,TY2 );
  163.    Line( DX+34,DY+38,DX+34,TY2 );
  164.    Line( DX+35,TY1,DX+35,DY+68 );
  165.    Line( DX+36,TY1,DX+36,DY+67 );
  166.    Line( DX+37,TY1,DX+37,DY+66 );
  167.    Line_Color( 2 );
  168.    Line( DX+38,DY+37,DX+38,DY+66 );
  169.    Line_To( DX+34,DY+70 );
  170.    Line_To( DX+30,DY+70 );
  171.    Line_To( DX+30,DY+41 );
  172.    Line_To( DX+35,DY+36 );
  173.    Line_To( DX+37,DY+36 );
  174.    Line_Color( 1 );
  175.    Line( DX+30,DY+40,DX+35,DY+35 );
  176.    Line_To( DX+37,DY+35 );
  177.    Line_To( DX+38,DY+36 );
  178.    Line( DX+35,DY+70,DX+38,DY+67 );
  179. END ; { Right_Bot }
  180.  
  181. PROCEDURE D_Hr_10 ;
  182. BEGIN
  183.    Paint_Color( 0 );
  184.    Paint_Rect( 17,35,10,72 );
  185.    DX := -12 ;
  186.    IF Hr_10 = 1 THEN
  187.    BEGIN
  188.       Right_Top ;
  189.       Right_Bot ;
  190.    END;
  191. END; { of D_Hr_10 }
  192.  
  193. PROCEDURE D_Mon_10 ;
  194. BEGIN
  195.    Paint_Color( 0 );
  196.    Paint_Rect( 17,35,10,72 );
  197.    DX := -12 ;
  198.    IF Mon_10 = 1 THEN
  199.    BEGIN
  200.       Right_Top ;
  201.       Right_Bot ;
  202.    END;
  203. END; { of D_Mon_10 }
  204.  
  205. PROCEDURE D_Digit ( Digit : Integer );
  206. BEGIN
  207.    Paint_Color( 0 );
  208.    Paint_Rect( DX,DY,40,72 );
  209.    CASE Digit OF
  210.       0 : BEGIN
  211.              Top_Horz ;
  212.              Right_Top ;
  213.              Right_Bot ;
  214.              Bot_Horz ;
  215.              Left_Bot ;
  216.              Left_Top ;
  217.           END;
  218.       1 : BEGIN
  219.              Right_Top ;
  220.              Right_Bot ;
  221.           END;
  222.       2 : BEGIN
  223.              Top_Horz ;
  224.              Right_Top ;
  225.              Mid_Horz ;
  226.              Left_Bot ;
  227.              Bot_Horz ;
  228.           END;
  229.       3 : BEGIN
  230.              Top_Horz ;
  231.              Right_Top ;
  232.              Mid_Horz ;
  233.              Right_Bot ;
  234.              Bot_Horz ;
  235.           END;
  236.       4 : BEGIN
  237.              Left_Top ;
  238.              Mid_Horz ;
  239.              Right_Top ;
  240.              Right_Bot ;
  241.           END;
  242.       5 : BEGIN
  243.              Top_Horz ;
  244.              Left_Top ;
  245.              Mid_Horz ;
  246.              Right_Bot ;
  247.              Bot_Horz ;
  248.           END;
  249.       6 : BEGIN
  250.              Top_Horz ;
  251.              Left_Top ;
  252.              Mid_Horz ;
  253.              Right_Bot ;
  254.              Bot_Horz ;
  255.              Left_Bot ;
  256.           END;
  257.       7 : BEGIN
  258.              Top_Horz ;
  259.              Right_Top ;
  260.              Right_Bot ;
  261.           END;
  262.       8 : BEGIN
  263.              Top_Horz ;
  264.              Right_Top ;
  265.              Right_Bot ;
  266.              Bot_Horz ;
  267.              Left_Bot ;
  268.              Left_Top ;
  269.              Mid_Horz ;
  270.           END;
  271.       9 : BEGIN
  272.              Mid_Horz ;
  273.              Left_Top ;
  274.              Top_Horz ;
  275.              Right_Top ;
  276.              Right_Bot ;
  277.              Bot_Horz ;
  278.           END;
  279.    END; { of CASE }
  280. END; { of D_Digit }
  281.